Ext.define('Dashboard.AddForm', {
	extend : 'Ext.form.FormPanel',
	alias : 'widget.AddForm',
	layout : 'column',
	defaults : {
		style : 'float:left;margin:4px;',
		columnWidth : 0.48
	},
	defaultType : 'textfield',
	fieldDefaults : {
		labelAlign : 'right',
		labelWidth : 84
	},
	items : [
		{
			fieldLabel : '任务名称<font color="red">*</font>',
			xtype : 'textareafield',
			allowBlank : false,
			name : 'taskName'
		},
		{
			fieldLabel : '应用<font color="red">*</font>',
			xtype : 'ApplicationCmb',
			name : 'application',
			multiSelect : false,
			allowBlank : false,
			emptyText : '应用',
		},
		{
			fieldLabel : '开发',
			xtype : 'MemberCmb',
			paramType : AppConstants.getTypeByName('developer'),
			name : 'developers'
		},
		{
			fieldLabel : '测试',
			xtype : 'MemberCmb',
			paramType : AppConstants.getTypeByName('tester'),
			name : 'testerses'
		},
		{
			fieldLabel : 'jira',
			name : 'jiraId'
		},
		{
			fieldLabel : '工作量',
			name : 'workDays',
			xtype : 'numberfield',
			minValue : 0.5,
			step : 0.5,
			allowDecimals : true,
			decimalPrecision : 1
		},
		{
			fieldLabel : '文档',
			name : 'isNeedDoc',
			xtype : 'YesOrNoCmb'
		},
		{
			fieldLabel : '评审',
			name : 'isNeedReview',
			xtype : 'YesOrNoCmb'
		},
		{
			fieldLabel : '计划开始',
			name : 'planStartDate',
			xtype : 'datefield',
			format : 'Y-m-d'
		},
		{
			fieldLabel : '计划提测',
			name : 'planTestDate',
			xtype : 'datefield',
			format : 'Y-m-d'
		},
		{
			fieldLabel : '计划上线',
			name : 'planOnlieDate',
			xtype : 'datefield',
			format : 'Y-m-d'
		},
		{
			fieldLabel : '优先级',
			name : 'prioritiy',
			xtype : 'PrioritiyCmb'
		},
		{
			fieldLabel : '备注',
			xtype : 'textareafield',
			name : 'remark',
			columnWidth : 0.96
		}
	],
	buttons : [
		{
			text : '保存',
			disabled : true,
			id : 'saveBtn',
			handler : function() {
				var me = this;
				var form = me.findParentByType('AddForm');
				var values = form.getValues();
				if (!form.isValid()) {
					return;
				}
				console.log('values:%o', values);
				if (!values.testerses) {
					values.testerses = undefined;
				}
				if (!values.developers) {
					values.developers = undefined;
				}
				Ext.Ajax.request({
					url : "/dashboard/add",
					method : 'post',
					jsonData : values,
					params : {},
					success : function(response, opts) {
						var obj = Ext.decode(response.responseText);
						console.dir(obj);
						var win = Ext.getCmp('addWindow');
						if (win) {
							win.close();
						}
						var grid = Ext.getCmp('dashboardGrid');
						grid.getStore().load();
					},
					failure : function(response, opts) {
						console.log('server-side failure with status code ' + response.status);
					}
				});
			}
		},
		{
			text : '关闭',
			handler : function() {
				var win = Ext.getCmp('addWindow');
				if (win) {
					win.close();
				}
			}
		}
	],
	listeners : {
		'validitychange' : function(form, valid) {
			Ext.getCmp('saveBtn').setDisabled(!valid);
		}
	}
})